/*

 */
package com.insigma.business.qrcode.common.dto;


import com.insigma.business.qrcode.common.util.ErrorLevelEnum;

public enum ErrorCodeEnum {
    ERROR_WX_API("101",ErrorLevelEnum.ERROR.getCode(),"调用微信API失败"),

    SSH_NAME_NOT_EQUAL("503", ErrorLevelEnum.WARN.getCode(),"支付宝登记姓名与身份证姓名不符合；1.请使用本人支付宝；2.若您是本人，则采集信息错误，请在生活号中留言。"),
    ERROR_USER_ALREADY_APPLY("504", ErrorLevelEnum.WARN.getCode(),"用户已申请"),
    ERROR_APPLY_IDCARD_SAME("503", ErrorLevelEnum.WARN.getCode(),"此身份证已经申请"),
    ERROR_USER_ALREADY_APPLY_OVERRUN("505", ErrorLevelEnum.WARN.getCode(),"用户申请次数过多"),


    ERROR_ALI_REAL_NAME("502", ErrorLevelEnum.ERROR.getCode(),"姓名或身份证实名错误，请确认支付宝实名，退出系统，2分钟后重试！"),

    ERROR_QR("150",  ErrorLevelEnum.WARN.getCode(), "二维码错误或已过期"),

    UNKNOWN_EXCEPTION("010", ErrorLevelEnum.WARN.getCode(), "未知异常"),

    
    DATABASE_EXCEPTION("011", ErrorLevelEnum.WARN.getCode(), "数据库异常"),

    
    REFLECT_EXCEPTION("012", ErrorLevelEnum.WARN.getCode(), "反射异常"),

    
    PARAM_NULL("013", ErrorLevelEnum.WARN.getCode(), "参数为空"),

    
    ILLEGAL_PARAM("014", ErrorLevelEnum.WARN.getCode(), "参数非法"),

    
    CONCURRENCY_FAILURE("015", ErrorLevelEnum.WARN.getCode(), "并发失败"),

    
    SYS_PARAM_NOT_EXIST("016", ErrorLevelEnum.WARN.getCode(), "系统参数表中没有配置该系统参数"),

    
    ILLEGAL_SYS_PARAM("017", ErrorLevelEnum.WARN.getCode(), "系统参数表中系统参数配置不正确"),

    
    ERROR_UNIQUE_ID_EMPTY("018", ErrorLevelEnum.WARN.getCode(), "幂等编号必填"),

    
    ERROR_UNIQUE_CHECK_FAIL("019", ErrorLevelEnum.WARN.getCode(), "幂等校验失败"),

    
    ERROR_UNIQUEID_LENGTH_OUT_OF_BOUNDS("050",  ErrorLevelEnum.WARN.getCode(),"幂等编号长度超过最大长度"),

    
    ERROR_NOT_CHINESE("051",  ErrorLevelEnum.WARN.getCode(),"不能包含汉字"),

    
    ERROR_IDEMPOTENCY("060",  ErrorLevelEnum.WARN.getCode(),"幂等异常"),


    
    ERROR_EMPTY_OR_REPEATED("086",  ErrorLevelEnum.WARN.getCode(), "数组为空或内容有重复"),

    
    
    ERROR_PAGE_SIZE("500", ErrorLevelEnum.WARN.getCode(),"页大小错误-范围不在1-1000内"),

    
    ERROR_PAGE_NUM("501", ErrorLevelEnum.WARN.getCode(),"页码错误-页码需要大于1"),

    
    ERROR_QUERY_PAGE_SIZE_OUT_BOUNDS("502", ErrorLevelEnum.WARN.getCode(),"分页查询每页最大记录条数超过限制"),

    ERROR_FILE_TYPE("503", ErrorLevelEnum.WARN.getCode(),"文件类型错误"),

    ERROR_NO_AUTH("511", ErrorLevelEnum.WARN.getCode(),"无权访问"),

    ERROR_USER_NOT_HAS_LBM("505", ErrorLevelEnum.WARN.getCode(), "还未获得老兵码"),

    
    COMMON_INNER_WARN("998", ErrorLevelEnum.WARN.getCode(), "通用的警告，由各自的警告信息区分"),

    
    COMMON_INNER_ERROR("999", ErrorLevelEnum.ERROR.getCode(), "通用的错误，由各自的错误信息区分"),

    

    ;
    
    private ErrorCodeEnum(final String code, final int errorLevel, final String description) {
        this.code = code;
        this.level = errorLevel;
        this.desc = description;
    }

    
    private String code;

    
    private int level;

    
    private String desc;

    
    public static ErrorCodeEnum getByCode(final String code) {
        for (ErrorCodeEnum resultCode : values()) {
            if (resultCode.getCode().equals(code)) {
                return resultCode;
            }
        }
        return null;
    }

    

    public String getCode() {
        return code;
    }

    public int getLevel() {
        return level;
    }

    public String getDesc() {
        return desc;
    }

    @Override
    public String toString() {

        return name()+"|"+getCode()+"|"+getLevel();
    }
}
